package com.coderg.gmall.product.service;

import com.alibaba.fastjson.JSONObject;
import com.coderg.gmall.model.product.*;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @description:
 * @author：coderG
 * @date: 2025/5/22
 */

public interface ItemService {
    /**
     * 查询sku详情
     * @param skuId
     * @return
     */
    public SkuInfo getSkuInfo(Long skuId);

    /**
     * 查询目录视图
     * @param category3Id
     * @return
     */
    public BaseCategoryView getBaseCategory(Long category3Id);
    /**
     * 获取价格
     *
     * @param skuId
     * @return
     */
    BigDecimal getSkuPrice(Long skuId);

    /**
     * 通过skuId,spuId查询 销售属性和值以及标记当前选中的销售属性值
     * @param spuId
     * @param skuId
     * @return
     */
    List<SpuSaleAttr> getSpuAttrValueBy(Long spuId, Long skuId);

    /**
     * 获取销售属性 和具体商品sku值的对应关系 键值对关系返回  sku-->sale_attr_value_id
     * @param spuId
     * @return
    //  */
    Map<String, String> getSkuAndSaleBySpuId(Long spuId);

    /**
     * 获取首页所有目录集合
     * @return
     */
    List<JSONObject> getFirstCategory123();

    /**
     * 获取品牌详情B
     * @param tmId
     * @return
     */
    BaseTrademark getBaseTrademark(Long tmId);

    /**
     * 根据skuId查询商品的平台属性
     *
     * @param skuId
     * @return
     */
    List<BaseAttrInfo> getAttrList(Long skuId);
    /**
     * 扣减库存
     * @param stockpile
     * @return
     */
    boolean decreaseStockpile(Map<Long,Integer> stockpile);
    /**
     * 回退库存
     * @param stockMap
     * @return
     */
    boolean rollbackStock(Map<String, String> stockMap);
}

